Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2014, 12:46
Аспирант
Отправить личное сообщение для cyber_bober Посмотреть профиль Найти все сообщения от cyber_bober
 
Регистрация: 12.12.2012
Сообщений: 80

Не могу передать текст в базу
Привет, вот код js
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();

var nocache = 0;
function insert() {
 document.getElementById('insert_response').innerHTML = "Подождите, запрос обрабатывается";
var email= encodeURI(document.getElementById('email').value);

nocache = Math.random();
http.open('get', 'send.php?email='+email+'&nocache = '+nocache);
http.onreadystatechange = insertReply;
http.send(null);
}
function insertReply() {
if(http.readyState == 4){ 
var response = http.responseText;
document.getElementById('insert_response').innerHTML = ''+response;
 }
 }


Вот обработчик
if(isset($_GET['email'])){
$email= $_GET['email'];
$insertSite_sql = 'INSERT INTO users (email) VALUES('.$email.')';
$insertSite= mysqli_query($dbc, $insertSite_sql) or die('Ошибка');
echo ('Добавлено');


Если передавать цифры - то передает нормально, если вводить адрес почты, то отправка не срабатывает, в чем может быть дело?
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2014, 13:07
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

'INSERT INTO users (email) VALUES(\''.$email.'\')'
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2014, 13:46
Аспирант
Отправить личное сообщение для cyber_bober Посмотреть профиль Найти все сообщения от cyber_bober
 
Регистрация: 12.12.2012
Сообщений: 80

Viral,
спасибо большое! Можете подсказать почему с экранированием сработало?
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2014, 13:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,279

Сообщение от cyber_bober
почему с экранированием сработало?
Потому, что это стока...

INSERT INTO users (email) VALUES('строка')


Такое проходит только для чисел...
INSERT INTO users (email) VALUES(12345)
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2014, 15:31
Аспирант
Отправить личное сообщение для cyber_bober Посмотреть профиль Найти все сообщения от cyber_bober
 
Регистрация: 12.12.2012
Сообщений: 80

ksa,
спасибо большое, буду знать
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2014, 14:52
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Оно все равно поломается. Нельзя так просто записать текст из риквеста. То есть можно, но х запишешь.

'INSERT INTO `users` (`email`) VALUES("'.mysqli::real_escape_string($email).'")';


вместо метода можно регу нарисовать, но такую, чтоб русский не выкашивала.

Ну то есть будет в имейле вот такой имейл - вася@"идиты".в'ж\nопу - и не запишешь. Мембер может быть думает что его проверки на js спасут?

Последний раз редактировалось kostyanet, 11.11.2014 в 14:54.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03